/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pp_visitor;

/**
 *
 * @author Delvoux
 */
public class No implements ElementVisitIF{
    private Object valor;
    private No esquerdo;
    private No direito;

    public No() {
    }

    public No(Object valor, No esquerdo, No direito) {
        this.valor = valor;
        this.esquerdo = esquerdo;
        this.direito = direito;
    }

    public No(Object valor, No esquerdo) {
        this.valor = valor;
        this.esquerdo = esquerdo;
    }

    public No(Object valor) {
        this.valor = valor;
    }

    public No getDireito() {
        return direito;
    }

    public void setDireito(No direito) {
        this.direito = direito;
    }

    public No getEsquerdo() {
        return esquerdo;
    }

    public void setEsquerdo(No esquerdo) {
        this.esquerdo = esquerdo;
    }

    public Object getValor() {
        if(this.valor == null) return null;
        return valor;
    }

    public void setValor(Object valor) {
        this.valor = valor;
    }

    public void accept(VisitorIF visitor){
        visitor.visit(this);
    }    
}
